Helix QAC QA·CLI Changes in 2024.3

Validate CI build run with ‑‑ignore no longer tries to upload

  • Command: qacli validate cibuild ‑‑incremental ‑‑ignore
  • Old Behavior: Reported “No changes in source relative to last baseline - CI build will stop now.", but then continued to attempt to upload—which failed—and returned “Success with error (3)”
  • New Behavior: Reports “No changes in source relative to last baseline - CI build will stop now." and then stops. Returns “CI build succeeded but no work to do(5)”

Enhance Validate Modern Authentication when using CLI

  • Command: qacli auth ‑‑validate ‑‑url <modern auth validate server>
  • Old Behavior: Previously, we output a list of instructions the user had to issue in order to authenticate with a Validate server that had modern authentication enabled.
  • New Behavior: The authentication process has been streamlined and the tools (CLI and GUI) now automatically requests authentication, opening a browser window. The user now generally only needs to enter the token/pin.

License server/port specified during installation is now propagated to all users

  • Command: qacli config license‑server
  • Old Behavior: Not available.
  • New Behavior: Any license server details specified during installation (using the Qt installers only), will be propagated to all users.

Fixed a qacli config license server failure with invalid command line

  • Command: qacli config license server ‑‑check ‑‑config foo
  • Old Behavior: The command could fail if no project was specified, but a config was specified.
  • New Behavior: The CLI enforces the use of a project if a config is supplied.

Invalid build-name now causes immediate failure

  • Command: qacli validate cibuild ‑‑build‑name <invalid‑name> or qacli validate build ‑‑build-name <invalid‑name>
  • Old Behavior: Would only check the validity of the build‑name after all other analysis and baselining had completed.
  • New Behavior: Will fail immediately if the build‑name is invalid and return “Command Line Parse Failure(1)”.

Fixed CI handling of missing baseline with ‑‑ignore

  • Command: qacli validate cibuild ‑‑ignore
  • Old Behavior: Reported “Validate suppressions were not downloaded", but then proceeded to attempt an upload—which succeeds, but all the issues found locally are marked as new issues—and returned “Unstable build”.
  • New Behavior: Reports “Validate suppressions were not downloaded." and then stops. Returns “CI build did not download a baseline from Validate to compare with (6)”.

Configuration file(s) are no longer modified during project creation/modification

  • Command: qacli admin ‑‑qaf‑project‑config | qacli project create | qacli project modify
  • Old Behavior: Configuration files (ACF, RCF, etc) in the local filesystem could potentially be modified before they were added into a Helix QAC project.
  • New Behavior: Files are now copied into the Helix QAC prqa sub-directory before they can be altered. Files outside of the prqa directory will not be altered.

Support added for Validate credentials file

  • Command: qacli auth ‑‑validate
  • Old Behavior: Credentials were stored in the LTOKEN file (<User Data Location>/app/validate_ltoken)
  • New Behavior: Credentials have now moved to a new file in the UDL: <User Data Location>/app/validate_credentials

Support added for Validate replacement environment variables

  • Command: qacli auth ‑‑validate
  • Old Behavior: Credentials were stored in the LTOKEN file and its location could be customized by setting the environment variable HELIX_QAC_LTOKEN
  • New Behavior: Credentials have now moved file and its location can be customized by setting the environment variable VALIDATE_CREDENTIALS (and optionally VALIDATE_TOKEN_KEYSTORE_FILE). See Environment Variables in the Helix QAC user manual for more details.

Removed CMN rules from SCR and MCR Report

  • Command: qacli report ‑t SCR | ‑t MCR
  • Old Behavior: CMN Rules made it into the Rules Summary table of the SCR.
  • New Behavior: CMN Rules are no longer in the Rules Summary table (of both the SCR and MCR). Any rules categorized as “Not Statically Enforceable“ are shown as “Not Enforced“.